/**
 * v-copy="'123'"
 */

const copy = {
  mounted(el, binding) {
    el.copyData = binding.value
    el.addEventListener('click', handleClick.bind(this, el))
  },
  updated(el, binding) {
    el.copyData = binding.value
  },
  beforeUnmount(el) {
    el.removeEventListener('click', el.__handleClick__)
  }
}

async function handleClick(abcd) {
  if (false) {
    try {
      await navigator.clipboard.writeText(abcd.copyData)
    } catch (err) {
      console.error('复制操作不被支持或失败: ', err)
    }
  } else {
    // 1. 创建一个 input 元素
    const inputEl = document.createElement('input')
    // 2. 给其赋值，value 为 abcd.copyData
    inputEl.value = abcd.copyData
    // 3. 将 input 元素插入页面
    document.body.appendChild(inputEl)
    // 4. 选中值
    inputEl.select()
    // 5. 执行赋值
    document.execCommand('Copy')
    // 6. 删除该元素
    document.body.removeChild(inputEl)
  }
}

export default copy
